package br.com.projetos.controller;

import java.io.IOException;
import java.sql.SQLException;
import java.util.HashMap;

import javax.faces.context.FacesContext;

import net.sf.jasperreports.engine.JRException;
import br.com.projetos.dao.DAO;
import br.com.projetos.dao.RequerimentoAuxilioAlimentacaoDAO;
import br.com.projetos.entity.Nomeado;
import br.com.projetos.entity.RequerimentoAuxilioAlimentacao;

public class RequerimentoAuxilioAlimentacaoController {

	private RequerimentoAuxilioAlimentacao requerimentoAuxilioAlimentacao;

	public RequerimentoAuxilioAlimentacao getRequerimentoAuxilioAlimentacao() {
		return requerimentoAuxilioAlimentacao;
	}

	public void setRequerimentoAuxilioAlimentacao(
			RequerimentoAuxilioAlimentacao requerimentoAuxilioAlimentacao) {
		this.requerimentoAuxilioAlimentacao = requerimentoAuxilioAlimentacao;
	}

	public void cadastrar() throws IOException {
		requerimentoAuxilioAlimentacao = new RequerimentoAuxilioAlimentacao();
		requerimentoAuxilioAlimentacao.setNomeado(new Nomeado());
		requerimentoAuxilioAlimentacao.setNomeado((Nomeado) FacesContext
				.getCurrentInstance().getExternalContext().getSessionMap()
				.get("usuarioLogado"));
		requerimentoAuxilioAlimentacao = RequerimentoAuxilioAlimentacaoDAO
				.getInstance().buscaRequerimentoAuxilioAlimentacaoByNomeado(
						requerimentoAuxilioAlimentacao.getNomeado());

		if (requerimentoAuxilioAlimentacao == null) {
			requerimentoAuxilioAlimentacao = new RequerimentoAuxilioAlimentacao();
			requerimentoAuxilioAlimentacao.setNomeado(new Nomeado());
			requerimentoAuxilioAlimentacao.setNomeado((Nomeado) FacesContext
					.getCurrentInstance().getExternalContext().getSessionMap()
					.get("usuarioLogado"));
		}
		FacesContext.getCurrentInstance().getExternalContext()
				.redirect("cadastrarAuxilioAlimentacao.jsp");
	}

	public String salvar() throws ClassNotFoundException, SQLException,
			JRException, IOException {
		DAO.getInstance().saveOrUpdate(requerimentoAuxilioAlimentacao);
		gerarPDF();
		return "";
	}

	@SuppressWarnings({ "unchecked", "rawtypes" })
	public String gerarPDF() throws ClassNotFoundException, SQLException,
			JRException, IOException {
		JasperMB jasperMB = new JasperMB();
		jasperMB.criaConexao();
		HashMap parametros = new HashMap();
		parametros.put("LOGO", jasperMB.getDiretorioReal("/images/logo.jpg"));
		parametros.put("NOM_COD", requerimentoAuxilioAlimentacao.getNomeado()
				.getCodigo());
		String nomeDoJasper = "/WEB-INF/jasper/AuxilioAlimentacao.jasper";

		jasperMB.geraRelatorioPassandoResultSet(parametros, nomeDoJasper);
		return "";
	}
}